@echo off
REM 定义提交并推送更改的函数，接受一个自定义的 commit_message 参数
:commit_and_push
set commit_message=%1
set default_message=%2

REM 如果用户没有传入 commit message，则使用默认值
if "%commit_message%"=="" (
    set commit_message=%default_message%
)

REM 添加所有文件到暂存区
git add .

REM 获取当前时间
for /f "tokens=1-3 delims=/ " %%a in ('date /t') do (
    set "mm=%%a"
    set "dd=%%b"
    set "yy=%%c"
)
set "current_time=%yy%-%mm%-%dd% %time%"

REM 获取操作系统类型和名称
set "os_info=%PROCESSOR_ARCHITECTURE% %PROCESSOR_IDENTIFIER%"

REM 配置Git用户身份（这里改为局部配置，仅针对本次会话）
git config --local user.email "succpeking@foxmail.com"
git config --local user.name "kyle"

REM 提交更改，使用传入的 commit_message 并包含当前时间和系统信息
git commit -m "%commit_message%: %current_time% (%os_info%)"

REM 推送到远程仓库
git push origin master

REM 退出函数
exit /b

REM 编译构建网站
npm install
npm run build

REM 复制生成的网站文件到子模块
xcopy /s /e /i build\* website\

REM 进入子模块目录
cd website

REM 更新 submodule 仓库 website，使用用户提供的 message 或默认的 "new build" 消息
call :commit_and_push "%1" "new build"

REM 返回主仓库目录
cd ..

REM 更新源数据仓库，使用用户提供的 message 或默认的 "new data" 消息
call :commit_and_push "%1" "new data"